北航大佬在 GitHub 开源了明朝版 「今日头条」
这条明朝新闻所讲的,其实是:
小本生意免税条约未能落实,小商贩被严重剥削,以致百姓聚众闹事并火烧衙门,造成多人伤亡。王炀 抢救出公章。
还有另外一条:
这条新闻说的是:
陕西天鼓鸣。
这些明朝的 “一句话” 新闻,都是一个名叫 HistSumm 的 AI 算法,根据文言文提炼出来的摘要。
生成文本摘要的 NLP 见得多了,古汉语摘要总结还是第一次。这项研究来自英国谢菲尔德大学的北航校友,以及北航计算机系的团队,和英国开放大学。
这项研究最神奇的是,用来处理文言文的算法,是用现代汉语数据训练的。
这个 AI,会写明朝新闻
这篇论文题目是 Summarising Historical Text in Modern Languages,文中提出的核心算法名为 HistSumm。
研究团队分别以古德语和古汉语作为目标语言,来实现算法的摘要提取。
其中,古汉语部分的测试结果,选用了明朝历史文献。
《万历邸抄》,是明万历年间的 “今日头条”,抄录自当时的官方 “邸报”。内容包括皇帝诏谕、民生百态、军事外交等等。
团队使用 HistSumm,对《万历邸抄》中的 100 多段文言文进行了摘要提炼。
比如这一段:
其中,story 是原文,Expert 是人类专家给出的摘要。
HistSumm 在 “相同词汇对”(Identical Mapping)的映射方法下,给出的结果是:
宋应昌撤兵自朝鲜回京。
IdMap+CONV(CONV 指简繁汉字转换增强语料库训练)给出的结果也是:
宋应昌撤兵自朝鲜回京。
怎么样,摘要是不是能直接上标题了?
再看另一个例子:
HistSumm 给出的摘要为:
高拱不忠,已死了,他妻还来乞恩,不准他。
高拱不忠,不准他妻来乞恩。
以上两个结果也分别是 IdMap、IdMap+CONV 给出的结果。
可以看出,算法对于一段文言文主要的人物 、事件、关系都能准确把握,只是偶然会遗漏一些细节。
在与最出色的跨语言学习模型 XLM 的结果对比中,HistSumm 的表现都有所超越:
实验方法与思路
对古汉语进行摘要历练的 HistSumm,它的训练数据,其实大部分都是现代汉语。
这是因为,可供模型训练的古汉语数据集,实在太少了。
于是,研究团队构建了一个跨语言迁移学习框架。
第一步,训练模型的现代和古汉语单词嵌入
对于像中文这样的表意语言,基于笔画(类似于字母语言的单词信息)训练的词嵌入是实现最佳性能的途径。因此团队利用笔画信息来提取汉字的特征向量。
此外,还有一点很重要。与简化字(在训练资源中占主导)相比,繁体字通常有更丰富的笔画,例如,“葉” 字,包含’艹’(植物)和’木’(木)的语义相关成分,而它的简化版本(’叶’)则没有。
繁体字的这些特性,有利于基于笔画的嵌入方式。所以为了提高模型的性能,团队还对繁体化的汉字进行了额外的实验。
建立特征向量空间
接下来,团队为模型建立了两个语义空间,空间中的特征向量既来自现代汉语,也有古汉语。
对于特征向量,主要采取两种引导策略:完全无监督(UspMap)的方式和相同词汇对(IdMap)方式。
前者只依赖于输入向量之间的拓扑相似性,而后者则额外利用古今同意的词作为依据。
使用现代汉语数据集训练
训练阶段,团队使用了现代汉语数据集 CSTS,训练了一个只接受现代汉语输入的总结器。
编码器的嵌入权重,在建立特征空间时,用相应的跨语言词向量的现代语分区进行初始化。
而解码器的嵌入权重则是随机初始化的,可以通过反向传播更新。
最后,就是模型的收敛。
团队直接将编码器的嵌入权重替换为向量空间中的古汉语特征向量,得到一个新的模型。这个模型可以用古汉语输入,但输出现代汉语句子,并且整个过程不需要任何外部并行监督。
简单的总结一下,团队让模型能理解古文的关键,是在特征向量空间中,建立互相联系的古汉语 - 现代汉语词汇对。然后再用现代汉语数据训练模型,之后替换掉对应的特征向量。
北航校友科研成果
本研究由谢菲尔德大学主导,第一作者 Xutan Peng,目前是英国谢菲尔德大学在读博士生,研究方向是自然语言处。
Xutan Peng 本科就读于北京航空航天大学计算机系。
而本文的共同作者中,也有来自北航计算机系的 Yi Zheng。
论文的通讯作者,谢菲尔德大学的 Lin Chenghua 副教授,本科也毕业于北航计算机系。
本文另一作者 Advaith Siddharthan 博士,是英国开放大学 Knowledge Media Institute 的研究院。
论文地址:
https://arxiv.org/abs/2101.10759
开源代码:
https://github.com/Pzoom522/HistSumm
4. 推荐几个好玩软件